import request from '@/utils/request'

// ==================== 入库管理 API ====================

/**
 * 获取可入库的订单列表
 */
export function getAvailableOrders(params) {
  return request({
    url: '/warehouse/inbound/available-orders',
    method: 'get',
    params
  })
}

/**
 * 创建入库单
 */
export function createInbound(data) {
  return request({
    url: '/warehouse/inbound',
    method: 'post',
    data
  })
}

/**
 * 获取入库记录列表
 */
export function getInboundRecords(params) {
  return request({
    url: '/warehouse/inbound/records',
    method: 'get',
    params
  })
}

/**
 * 获取入库单详情
 */
export function getInboundDetail(id) {
  return request({
    url: `/warehouse/inbound/${id}`,
    method: 'get'
  })
}

/**
 * 删除入库单
 */
export function deleteInbound(id) {
  return request({
    url: `/warehouse/inbound/${id}`,
    method: 'delete'
  })
}

// ==================== 出库管理 API ====================

/**
 * 获取可出库的库存列表
 */
export function getAvailableStock(params) {
  return request({
    url: '/warehouse/outbound/available-stock',
    method: 'get',
    params
  })
}

/**
 * 创建出库单
 */
export function createOutbound(data) {
  return request({
    url: '/warehouse/outbound',
    method: 'post',
    data
  })
}

/**
 * 获取出库记录列表
 */
export function getOutboundRecords(params) {
  return request({
    url: '/warehouse/outbound/records',
    method: 'get',
    params
  })
}

/**
 * 获取出库单详情
 */
export function getOutboundDetail(id) {
  return request({
    url: `/warehouse/outbound/${id}`,
    method: 'get'
  })
}

/**
 * 删除出库单
 */
export function deleteOutbound(id) {
  return request({
    url: `/warehouse/outbound/${id}`,
    method: 'delete'
  })
}

// ==================== 库存管理 API ====================

/**
 * 获取库存列表
 */
export function getInventoryList(params) {
  return request({
    url: '/warehouse/inventory',
    method: 'get',
    params
  })
}

/**
 * 根据厂内编号获取库存详情
 */
export function getInventoryByFactoryNo(factoryNo) {
  return request({
    url: `/warehouse/inventory/${factoryNo}`,
    method: 'get'
  })
}

/**
 * 库存调整
 */
export function adjustInventory(id, data) {
  return request({
    url: `/warehouse/inventory/${id}/adjustment`,
    method: 'put',
    data
  })
}

/**
 * 获取低库存预警列表
 */
export function getLowStockItems() {
  return request({
    url: '/warehouse/inventory/low-stock',
    method: 'get'
  })
}

// ==================== 工具 API ====================

/**
 * 生成厂内编号
 */
export function generateFactoryNo() {
  return request({
    url: '/warehouse/generate-factory-no',
    method: 'get'
  })
}

/**
 * 根据报价明细ID获取已入库总数
 */
export function getTotalInboundQuantity(quotationItemId) {
  return request({
    url: `/warehouse/inbound/total-quantity/${quotationItemId}`,
    method: 'get'
  })
}

/**
 * 根据入库单ID获取已出库总数
 */
export function getTotalOutboundQuantity(inboundId) {
  return request({
    url: `/warehouse/outbound/total-quantity/${inboundId}`,
    method: 'get'
  })
}

// ==================== 基础数据 API ====================

/**
 * 获取客户选项列表
 */
export function getCustomerOptions() {
  return request({
    url: '/customer/all',
    method: 'get'
  })
}

/**
 * 获取业务员选项列表
 */
export function getEmployeeOptions() {
  return request({
    url: '/employee/all',
    method: 'get'
  })
} 